home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #5 / Amiga Plus CD - 2000 - No. 5.iso / Tools / Grafik / Misc / netpbm / HISTORY < prev    next >
Encoding:
Text File  |  2000-01-01  |  29.4 KB  |  796 lines

  1. Jef Poskanzer (jef@acme.com) invented the PBM format in the 1980s to
  2. provide the computer graphics world with a common, trouble-free
  3. format, a lingua-franca, for bitmaps.  The format was designed to be
  4. simple enough that it could transmitted within an email message
  5. without any special encapsulating and survive any translations and
  6. recoding that an email message might go through and be easily
  7. extractable on the other end.
  8.  
  9. In 1988, Jef Poskanzer distributed the forerunner of Netpbm, Pbmplus,
  10. which gathered together the various tools he had developed to work
  11. with PBM files.  These were mainly tools to convert between PBM and
  12. other existing graphics formats, making it possible to deal with the
  13. Tower Of Babel siutation that had arisen with the proliferation of
  14. graphics formats.
  15.  
  16. By the end of 1988, Jef had added the PGM and PPM formats and lots more
  17. tools to Pbmplus.
  18.  
  19. In 1991, Jef added a variety of programs and code contributed by the
  20. user community, and then stopped maintaining Pbmplus.  Jef never
  21. formally renounced support for it, but simply didn't get around to
  22. distributing any updates for over a year.
  23.  
  24. In 1993, Netpbm was developed to replace Pbmplus.  Netpbm was nothing
  25. more than a new release of Pbmplus, and named for the fact that people
  26. all over the world would maintain the package by submitting fixes and
  27. enhancements over the Net.  This was a time when such worldwide
  28. collaboration was still novel.
  29.  
  30. Then Netpbm apparently fell into neglect with the last release by its
  31. regular maintainer in March 1994.  In September of 1995 Anthony
  32. Thyssen released an unofficial update of it called Netpbm-1mar1994.p1,
  33. while disclaiming any responsibity for ongoing upkeep.
  34.  
  35. The documentation in that 1995 release mentioned two different official
  36. mailing lists concerning the package, but by April 1999, neither
  37. existed anymore.
  38.  
  39. In September 1999, Bryan Henderson needed some minor bugs fixed, and
  40. wanted to clean up the mess of unsupported versions and outdated
  41. documentation of these tools.  After checking around to see if anyone
  42. had any claims of ownership of the package, and finding none, Bryan
  43. assumed control and responsibility for Netpbm.  
  44.  
  45. In November 1999, Thorbjoern Ravn Anderson <ravn@mip.sdu.dk> did the
  46. same thing, for the same reason (apparently unaware of Bryan's work)
  47. and made available an updated version (based on the 1994 release) as
  48. described by http://sunsite.auc.dk/netpbm.  Shortly thereafter, he
  49. discontinued his effort in deference to the new Pbmplus effort
  50. mentioned below.  Bryan did not know about Anderson's work until March
  51. 2000.
  52.  
  53. In parallel, and unknown to Bryan, Jef was working on a new release
  54. under the original name Pbmplus and claiming again (or maybe still) to
  55. be maintaining Pbmplus.  He did a limited release of a beta version of
  56. it in November 1999.  A mailing list pbmplus@acme.com was active.
  57. Bryan learned of this effort's existence in March 2000.
  58.  
  59. Pbmplus and Netpbm were once part of the body of X/Windows contributed
  60. software, distributed on ftp.x.org (directory contrib/utilities).
  61. Bryan didn't receive a response to a request to an inquiry to the
  62. ftp.x.org owner as to the prospect of cleaning up the Netpbm related
  63. files there.  So Bryan instead made Metalab the new home of the source
  64. code.  But Metalab had pretty low quality too, and in April 2000 Bryan
  65. moved the package's home to Sourceforge.
  66.  
  67.  
  68.  
  69.  
  70. CHANGE HISTORY BEGINNING WITH BRYAN'S RELEASE 8
  71. -----------------------------------------------
  72.  
  73.  
  74. 00.07.12 BJH  Release 9.6
  75.  
  76.               Add pnmtofiasco, fiascotopnm, psnpsnr.  Thank to Ullrich
  77.               Hafner.
  78.  
  79.               Make Pnmcrop use a temporary file instead of huge amounts
  80.               of memory.
  81.  
  82.               bmptoppm: fix crash when OS/2 BMP file has > 8 bits per pixel.
  83.  
  84.               anytopnm: fix bug (from 9.0) wherein program almost
  85.               always crashed.  Add gzip, bzip, bzip2 capability.
  86.               Thanks Charles Howes.
  87.  
  88.               parallel.c: Work around SunOS libc problem.
  89.  
  90.               Define some newer libtiff macros so it compiles against
  91.               older libtiff.
  92.  
  93. 00.07.01 BJH  Release 9.5
  94.  
  95.               Extend formats to allow multiple images per file.  Add
  96.               -allimages option to pnmfile.  Add pnmsplit.  Extend
  97.               pnmtops.
  98.  
  99.               Add pbmtowbmp, wbmptopbm.  Thanks Terje Sannum.
  100.  
  101.               ppmtobmp: Add 24 bit (truecolor) capability.
  102.  
  103.               pnmcut: easier, more expressive syntax for specifying what
  104.               to cut.
  105.  
  106.               pnminterp: handle maxval != 255, convert to use Netpbm
  107.               libraries.
  108.  
  109.               Translate pstopnm from Csh to C, eliminate dependency
  110.               on the 'bc' program.
  111.  
  112.               Fix bug in tiff library build which caused null soname.
  113.  
  114.               Add optParseopt2() to shhopt.a so you can use long options
  115.               with one hyphen instead of two.
  116.  
  117.               giftopnm: fix bug with variable used before set.  Fix bug
  118.               (coding error -- 0=>i).  Unknown impact.
  119.  
  120.               bmptoppm: fix bug with 24 bit (truecolor) Windows BMPs.
  121.  
  122.               xwdtopnm: fix one more bug with bits_per_item <> bits_per_pixel.
  123.  
  124.               Fix ppmtompeg build bug with static libraries.
  125.  
  126.               Make build clean with gcc -ansi (albeit with some files
  127.               that need extensions declaring the _BSD_SOURCE etc.).
  128.  
  129. 00.06.04 BJH  Release 9.4
  130.  
  131.               Rebase pnmtopng, pngtopnm on Pnmtopng 2.37.4.
  132.  
  133.               pbmtolj: fix bug where blank lines get discarded.  Thanks
  134.               Charles Howes.
  135.  
  136.               ppmtompeg: fix bug with "PNM" format files with maxval != 255.
  137.               Get rid of built-in PPM file parsing.
  138.  
  139.               Fix 'make install' where mkinstalldirs is not found.
  140.  
  141.               Fix bug where rle_global.c would not compile with GNU C 
  142.               Library 2.
  143.  
  144. 00.06.01 BJH  Release 9.3
  145.  
  146.               pnmfile: check for file size error.
  147.  
  148.               ppmhist: handle larger maxvals, image sizes
  149.  
  150.               xwdtopnm: Use color map with DirectColor to fix wrong color
  151.               bug on some DirectColor xwds.
  152.  
  153.               xwdtopnm: Correct bug with 24/32 DirectColor LSBfirst xwds.
  154.  
  155.               Add pXmcheck() library function.
  156.  
  157.               Add leaftoppm and ppmtoleaf.  Thanks Bill O'Donnell.
  158.  
  159.               Add winicontoppm and ppmtowinicon.  Thanks Lee Benfield.
  160.  
  161.               Add pgmslice.  Thanks to Jos Dingjan.
  162.               
  163.               Include subset of RLE library in the package.
  164.  
  165.               stamp-date doesn't rely on whoami.
  166.  
  167.               Make file fixes to accomodate more install programs.
  168.          
  169.               Replace tmpnam() with mkstemp().
  170.  
  171.               Add pXm_init() into all programs that didn't have it.
  172.  
  173. 00.05.15 BJH  Release 9.2
  174.  
  175.               Shared libraries now build properly for Solaris, SunOS, NetBSD.
  176.  
  177.               Add jbigtopnm, pnmtojbig.  Thanks to Markus Kuhn.
  178.  
  179.               Add pnminterp, pnminterp-gen by Russell Marks.
  180.  
  181.               Add pbm_writepbmrow_packed() and pbm_readpbmrow_packed() to
  182.               libpbm.
  183.  
  184.               ppmdither: fix bug with input maxval != 255.  Make output
  185.               maxval the LCM of the requested numbers of primary levels.
  186.  
  187.               xwdtopnm: works with files where there aren't an integeral
  188.               number of pixels per storage unit (e.g. 24 bits per pixel)
  189.               
  190.               Add some missing pXm_init()
  191.  
  192.               Make pXmmerge source code automatically generated.
  193.  
  194. 00.05.06 BJH  Release 9.1
  195.  
  196.               Add pbmtoppa (renamed from pbm2ppa, renamed from print-pbm).
  197.               Thanks Tim Norman.
  198.  
  199.               Add pbmpage.  Thanks Tim Norman.
  200.  
  201.               Add pbmtomda, mdatopbm.  Thanks John Elliott.
  202.  
  203.               Replace gemtopbm with gemtopnm.  Thanks to John Elliott.
  204.  
  205.               Add ppmntsc: change colors to those acceptable for ntsc or pal.
  206.  
  207.               Rename old ppmntsc to ppmtv.
  208.  
  209.               pbmtolj: Add compression (-delta, -packbits, -compress) by
  210.               Dave Platt
  211.  
  212.               Look for both /usr/lib/X11/rgb.txt and /usr/openwin/lib/rgb.txt
  213.               by default.  Improved error messages if file not found.
  214.  
  215.               pbmtext: renders character codes 0x80-0xff and 0x00-0x1f as
  216.               whatever the font says, rather than always blank.  Thanks
  217.               Helge Oldach.
  218.  
  219.               Fix bug in parsing of rgb.txt file in ppm_colorname().
  220.  
  221.               Add optional static library build to make files.
  222.  
  223.               Fix a bunch of build bugs for Solaris, SunOS.  Still not all 
  224.               the way there.  Thanks Richard Curnow, Philippe Brieu, 
  225.               Benjamin Kuit.
  226.  
  227.               Make it build on Cygwin.  Thanks Pierre Humblet.
  228.  
  229.               Use rm -f;ls instead of ls -sf in make files; some systems don't
  230.               have ln -f.
  231.               
  232. 00.04.15 BJH  Release 9.0
  233.  
  234.               Add the 16-bit-per-sample format for maxval > 255.
  235.               Change size of samples in the library interface from 8
  236.               bits to 32 bits.  Library write routines now create the
  237.               new 16 bit format instead of plain format when you
  238.               request a maxval > 255 and not 'forceplain'.  Make all
  239.               programs read the new format, and all programs that
  240.               convert to PNM from a >8 bit input generate it instead
  241.               of failing or normalizing.  Make pnmdepth generate it.
  242.  
  243.               pnm_readpnminit(), etc. fails if you request a maxval >
  244.               65535 and not 'forceplain'.  It used to generate plain
  245.               format in that case, but you couldn't actually specify    
  246.               a sample value > 255.
  247.  
  248.               Add pnmtorle and rletopnm from the Army High Performance 
  249.               Computing Research Center.
  250.  
  251.               add ppmcolormask - creates a mask of areas of a certain 
  252.               color in an image.
  253.  
  254.               anytopnm: fix infinite loop
  255.               
  256.               pbmtext:  Ignore non-8-bit characters in bdf files instead
  257.               of crashing.
  258.  
  259.               ppmdither: fix crash with large dithering matrix dimensions.
  260.  
  261.               Rename ppmtompeg/headers/search.h to motion_search.h to avoid
  262.               possible confusion with the OSF system file search.h
  263.          
  264.               Fix erroneous shhopt.h dependency in build.
  265.               
  266. 00.04.03 BJH  Release 8.4
  267.  
  268.               Add ppmtompeg, adapted from Berkeley's mpeg_encode.
  269.          
  270.               Add eyuvtoppm and ppmtoeyuv, and vidtoppm, from Berkeley
  271.               mpeg tools.
  272.  
  273.               Add ppmfade, adapted from Wesley C. Barris' pbmfade. 
  274.  
  275.               Add ability to extract the alpha channel to tifftopnm,
  276.               tgatoppm, and ximtoppm.  (It's already in pngtoppm,
  277.               and still missing from ilbmtoppm).
  278.  
  279.               pnmtotiff: Change default compression to none, due to
  280.               removal of LZW capability from Tiff library.
  281.  
  282.               Make merge build use symbolic links instead of hard links.
  283.  
  284.               Include dependent libraries in the link of the
  285.               libraries.  This is necessary on some systems, and a
  286.               good idea on others.
  287.  
  288.               Use strerror() instead of sys_errlist[] everywhere.  If
  289.               some systems do not have the former, we need to do some
  290.               work, because strerror() was already used in some
  291.               places.  We do have a report of a BeOS system with no
  292.               sys_errlist[].
  293.  
  294. 00.03.24 BJH  Release 8.3
  295.  
  296.               Add pnmshadow, by John Walker <http://www.fourmilab.ch/>,
  297.               dated 1997.08.15.
  298.  
  299.               Add ppmlabel, by John Walker, dated June 1995.
  300.  
  301.               Add ppmcie by John Walker, dated September 1994.
  302.  
  303.               Add character drawing routines by John Walker to libppm.
  304.  
  305.               Add sbigtopgm by John Walker, dated January 1998.
  306.  
  307.               handle BMP file color map size parameter in ppmtobmp, bmptoppm.
  308.               Thanks Marc Moorcroft.
  309.  
  310.               Rewrite make files, fix lots of make install bugs.
  311.  
  312. 00.03.20 BJH  Release 8.2
  313.  
  314.               Add ppmtojpeg and jpegtopnm.
  315.  
  316.               Rename pnmnoraw to pnmtoplainpnm.
  317.  
  318.               Add CMYK capability to tifftopnm.
  319.  
  320.               Major make file rewrite, especially making install work.
  321.               Pnmmerge is no longer the default.  Shared libraries are.
  322.  
  323.               Add pnmtotiffcmyk.  Written by Andrew Cooke  (Jara Software)
  324.               jara@andrewcooke.free-online.co.uk
  325.  
  326. 00.03.02 BJH  Release 8.1
  327.  
  328. 00.03.02 BJH  Add pnmtopng and pngtopnm.  I got these from 
  329.               ftp://ftp.au.netbsd.org/pub/NetBSD/packages/distfiles
  330.               today.  Release 2.37.3.  I added an "unsigned" and
  331.               changed the type of 'scaleval' to quiet compiler warnings.
  332.  
  333. 00.03.01 BJH  Fix xwdtopnm interpretation of 16 bit TrueColor files.
  334.               Thanks to Martin Kroeker, mk@daveg.com.
  335.  
  336. 99.09.23 BJH  Update xbmtopbm to recognize newer xbm format.
  337.  
  338.  
  339.  
  340.  
  341. CHANGES TO NETPBM THROUGH MARCH 1994
  342. ------------------------------------
  343.  
  344. Functional changes to Netpbm since 13 October 1993.
  345. Minor bug fixes and compatibility fixes are not documented in this file.
  346.  
  347. PBM
  348.  
  349. libpbm1.c    strstr() added to libpbm1.c.
  350. libpbm5.c    BDF font support added.
  351. pbmtext        BDF font support added.
  352. pbmto4425    New filter.
  353. pbmtoln03    Command line parsing changed to Pbmplus standard.
  354.  
  355.  
  356. PGM
  357.  
  358. pgmnoise    New filter.
  359.  
  360.  
  361. PPM
  362.  
  363. picttoppm    Updated
  364. ppm3d        New facility.
  365. ppmchange    New filter.
  366. ppmdim        New filter.
  367. ppmflash    New filter.
  368. ppmmix        New filter.
  369. ppmntsc        New filter.
  370. ppmqvga        Option parsing changed to Pbmplus standard.
  371. ppmshift    New filter.
  372. ppmspread    New filter.
  373. ppmtoxpm    Prototypes added.
  374. xpmtoppm    Prototypes added.
  375. ilbmtoppm    Updated.
  376. ppmtoilbm    Updated.
  377.  
  378.  
  379. PNM
  380.  
  381. pnmtoddif    New filter.
  382. pnmhistmap    New facility.
  383. pnmtops        New option (-nocenter) added.
  384.  
  385.  
  386. Functional changes to Netpbm since 7 December 1993.
  387. Minor bug fixes and compatibility fixes are not documented in this file.
  388.  
  389. PGM
  390.  
  391. asciitopgm    New filter.
  392. fitstopgm    Replaced by fitstopnm.
  393. pgmtofits    Replaced by pnmtofits.
  394. pgmtopbm    Upgraded.
  395. pgmkernel    New filter.
  396.  
  397. PPM
  398.  
  399. ppmchange    Upgraded.
  400. xvminitoppm    New filter.
  401.  
  402. PNM
  403.  
  404. pnmalias    New filter.
  405. pnmtofits    Replacement for pgmtofits.
  406. fitstopnm    Replacement for fitstopgm.
  407. pnmtosgi    New filter.
  408. sgitopnm    New filter.
  409. pstopnm        New filter.
  410.  
  411.  
  412.  
  413. CHANGES BETWEEN PBMPLUS AND THE ORIGINAL NETPBM
  414. -----------------------------------------------
  415.  
  416. The following is new in Netpbm (compared to Pbmplus):
  417.  
  418. PBM
  419.  
  420. pbmtext        BDF font support added.
  421.  
  422. pbmto4425    Display on an AT&T 4425 Ascii terminal.
  423.  
  424. pbmtoascii    A new improved version.
  425.  
  426. pbmtoln03    Convert to DEC LN03+.
  427.  
  428. pbmtolps    Fast PostScript creator.
  429.  
  430. pbmtopk        Conversion to/from a packed (PK) format font.
  431. pktopbm
  432.  
  433. pbmclean    Flip isolated pixels.
  434.  
  435. pbmpscale    Enlarge pbm image with edge smoothing.
  436.  
  437.  
  438. PGM
  439.  
  440. asciitopgm    Convert an ascii image into pgm.
  441.  
  442. pbmtopgm    Convert pbm to pgm by averaging areas.
  443.  
  444. rawtopgm    Handles input files without specification of the file size,
  445.         assuming the input image is quadratic. It also supports a
  446.         -tb (top bottom flip) option.
  447.  
  448. bioradtopgm    Conversion utility for files created by Biorad confocal
  449.         microscopes.
  450.  
  451. spottopgm    Convert SPOT satellite images to pgm.
  452.  
  453. pgmkernel    Generate a convolution kernel.
  454.  
  455. pgmnoise    Create a pgm file with random pixels.
  456.  
  457.  
  458. PPM
  459.  
  460. bmptoppm    Conversion to/from windows bitmap format.
  461. ppmtobmp
  462.  
  463. ppmtogif    Updated version.
  464. giftoppm    Removed (see giftopnm).
  465.  
  466. ppmtoilbm    Updated version.
  467. ilbmtoppm
  468.  
  469. picttoppm    Updated version.
  470. ppmtopict
  471.  
  472. ppmtoxpm    Updated version, which supports xpm version 3.
  473. xpmtoppm
  474.  
  475. ppmtomap    Extract all colours from a ppm file.
  476.  
  477. ppmtomitsu    Convert to Mitsubishi S340-10 printer format.
  478.  
  479. xvminitoppm    Convert an XV thumbnail picture to ppm.
  480.  
  481. ppmtoyuvsplit    Conversion to/from YUV triplets. (MPEG / JPEG).
  482. yuvsplittoppm
  483.  
  484. ppm3d        Create a red/blue stereo image.
  485.  
  486. ppmbrighten    Change image saturation and value on an HSV map.
  487.  
  488. ppmchange    Change all pixels of one colour to another in a portable pixmap
  489.  
  490. ppmdim        Dim a ppm file down to total blackness.
  491.  
  492. ppmdist        Simplistic grayscale assignment for machine generated
  493.         colour images.
  494.  
  495. ppmflash    Brighten a picture up to complete white-out
  496.  
  497. ppmmix        Blend together two portable pixmaps.
  498.  
  499. ppmnorm        Normalize the contrast in a portable pixmap.
  500.  
  501. ppmntsc        Make a portable pixmap look like taken from an American TV.
  502.  
  503. ppmqvga        Eight plane quantization.
  504.  
  505. ppmshift    Shift lines of a portable pixmap left or right by a random amount.
  506.  
  507. ppmspread    Displace a portable pixmap's pixels by a random amount.
  508.  
  509. ppmtopjxl    Convert a ppm file into an HP PaintJet XL PCL file.
  510.  
  511.  
  512. PNM
  513.  
  514. pnmtops        New option (-nocenter) added.
  515.  
  516. pnmtofits    Replacement for pgmtofits/fitstopgm
  517. fitstopnm
  518.  
  519. pnmtosgi    Conversion to/from sgi image format.
  520. sgitopnm
  521.  
  522. pnmtosir    Conversion to/from Solitaire image recorder format.
  523. sirtopnm
  524.  
  525. giftopnm    Replaces giftoppm. Examines the input image and produces
  526.         a pbm, pgm, or ppm output.
  527.  
  528. pstopnm        Convert PostScript to pnm. Requires Ghostscript.
  529.  
  530. zeisstopnm    Conversion utility for files created by Zeiss confocal
  531.         microscopes (the old standard).
  532.  
  533. pnmalias    Anti aliasing filter.
  534.  
  535. pnmcomp        Composite two portable anymaps together.
  536.  
  537. pnmcrop        New options added.
  538.  
  539. pnmpad        Add borders to anymap.
  540.  
  541.  
  542. LIBTIFF
  543.  
  544. A new release of libtiff is included. Please read its supporting
  545. documentation.
  546.  
  547.  
  548. CHANGE LOG FROM PBMPLUS
  549. -----------------------
  550.  
  551. Changes since the 30oct91 patch version:
  552.  
  553.     Fixed uninitialized variable in ppmtotga.  (John Walker)
  554.     Added pgmcrater, ppmforge, ppmtoacad, sldtoppm.  (John Walker)
  555.     Slight change to the p?mmerge.c front-ends to allow for main programs
  556.       that return instead of exitting.
  557.     Minor clarifications to the pnmconvol man page.
  558.     Fixed xwdtopnm to read some 16-bit True/Direct files. (David Elliott)
  559.     Fixed uninitialized variables in pnmtotiff.  (Larry Rosenstein, Bayles Holt)
  560.     Added a couple of checks for \r while reading whitespace. (Larry Rosenstein)
  561.     Removed all the BROKENPUTC stuff.  Now we ignore all return values from
  562.       putc(), and check ferror() in pm_close().  Added pm_close() calls to
  563.       many of the filters.
  564.     Fixed pnmdepth to check for too-large newmaxvals.  Improved rounding
  565.       in pnmdepth and PPM_DEPTH macro.  (Tom Lane)
  566.     Minor fix to ppmtouil.  (Mohsen Banan)
  567.     Added new Imakefiles.  (Rainer Klute)
  568.  
  569. Changes since the 05oct91 X11R5 contrib tape version:
  570.  
  571.     Fixed minor SysV config error in pbmplus.h.  (Tom Lane)
  572.     Fixed tifftopnm so that BITSPERSAMPLE and SAMPLESPERPIXEL default
  573.       correctly.  Fixed possible bug in tgatoppm line-interleaving code.
  574.       (Arthur David Olson)
  575.     Fixed tifftopnm so that colormapped files are read correctly.
  576.       (PauL Drews, Mike Wade)
  577.     Corrected use of DefaultRGBDatabase / RGB_DB for imake sites.
  578.       (Randal L. Schwartz)
  579.     Bugfix to pnmtops color PostScript in -rle mode.  (Angus Duggan)
  580.     Added auto-turning to pnmtops.
  581.     Added run-length encoding to ppmtotga.
  582.     Space optimization to pgmoil.
  583.  
  584. Changes since the 27sep91 comp.sources.misc distribution:
  585.  
  586.     Fixed spelling error in giftoppm.  Fixed ppmrelief to not shrink the
  587.       image by 2 rows and columns.  Minor fix to pgmramp.  Fixed off-by-one
  588.       error in pnmtoxwd.  Man page fix for pnmgamma.  (Arthur David Olson)
  589.     Converted ANSI trigraphs in ppmtosixel into good old octal.  (Jeff Glover)
  590.     Fix to 24/32 bit case in rasttopnm.  (Behr de Ruiter)
  591.     Float/double portability fix to libppm4.  (Bruce Holmer, Ronald Khoo)
  592.     Fixed typo in compat.ksh.  (Larry Virden)
  593.     Fixed int/short incompatibility in tifftopnm.  (Salik Rafiq)
  594.  
  595. Changes during the extended beta test period, starting on 15jan91:
  596.  
  597.     Lots of fixes from: Anthony A. Datri, Arthur David Olson, David Brooks,
  598.       David Elliott, Doug Claar, Duncan Sinclair, Francois Pinard, Gerard
  599.       Leurs, Jim Hanko, Ken Laprade, Klaus U. Schallhorn, Markus Bolz, Mike
  600.       Hench, Philip Gladstone, R C Smith, Selden E. Ball, Jr., Stephen Uitti,
  601.       Steve Allen, Tom Lane, update.kpj-jaakkola@athena.dsv.su.se,
  602.       Charles Karney, Unmesh Agarwala, Ed Pendzik, Juha Sarlin, Tom Tulinsky,
  603.       Phillip Smith, Lai-King Mau, David Koblas, Mark Donovan.
  604.     Added a global -version flag.
  605.     Added bunches of statics and prototypes.  Now compiles with zero
  606.       warnings under gcc -ansi -pedantic.
  607.     Changed #ifdef __STDC__ to #if __STDC__, since some non-compliant
  608.       compilers define it as 0.
  609.     Changed pm_message and pm_error to be varargs routines.  Added a
  610.       portable version of vfprintf for those systems which don't have it.
  611.     Removed the option of not compiling the pgm and ppm parts.  Very few
  612.       people used it, and it added amazing complexity to the pnm programs,
  613.       turning them into maintenance nightmares.
  614.     Merged pbmpaste into pnmpaste.
  615.     Merged pgmtops and ppmtops into pnmtops.
  616.     Added auto-scaling and dpi / page size flags to pnmtops.
  617.     Changed the interpretation of bits in pbmlife to conform with other
  618.       tools.
  619.     Changed xwdtopnm to ignore the pixel number in the xwd color structure.
  620.     Added a -pseudodepth flag to pnmtoxwd.
  621.     Updated tifftopnm for libtiff 2.4.
  622.     Added many option flags to pnmtotiff.  (J.T. Conklin)
  623.     Added support for X11R5's new color specifiers rgb: and rgbi:.
  624.     Added pgmtexture.  (James Darrell McCauley)
  625.     Added ppmtopj, pjtoppm, and ppmdither.  (Christos Zoulas)
  626.     Added ppmtotga.  (Mark Shand)
  627.     Added ppmtosixel.  (Rick Vinci)
  628.     Added pbmtoatk and atktopbm.  (Bill Janssen)
  629.     Added ppmtoyuv and yuvtoppm.  (Marc Boucher)
  630.     Fixes to picttoppm.  (George Phillips)
  631.     Added 24-bit support to ilbmtoppm.  (Mark Thompson)
  632.  
  633. Changes since the X.V11R4 / comp.sources.misc distribution of 22nov89:
  634.  
  635.     Added pgmramp, pgmedge, pgmtoppm, rgb3toppm, ppmtoxpm, pnmgamma,
  636.       ximtoppm, pgmtofs, picttoppm, ppmtopict, ppmquantall, anytopnm,
  637.       pi1toppm, ppmtopi1, sputoppm, spctoppm, pbmto10x, ppmtoicr, ppmmake,
  638.       xpmtoppm, ppmtopuzz, ppmtouil, ybmtopbm, pbmtoybm, lispmtopgm,
  639.       pgmtolispm, pbmtogem, pi3topbm, pbmtopi3, pbmtoepson, pbmtoplot,
  640.       pbmtozinc, pbmtext, pnmnoraw, pnmmargin, pnmfile, pnmindex,
  641.       ppmtorgb3, gouldtoppm, pgmbentley, pgmoil, ppmrelief, pnmtotiff,
  642.       ppmtopcx.
  643.     Merged some filters:
  644.       rasttopbm and rasttoppm into rasttopnm;
  645.       pbmtorast and ppmtorast into pnmtorast;
  646.       xwdtopbm and xwdtoppm into xwdtopnm;
  647.       pbmtoxwd and ppmtoxwd into pnmtoxwd.
  648.     Promoted some filters:
  649.       pcxtopbm to pcxtoppm;
  650.       ppmarith to pnmarith;
  651.       ppmconvol to pnmconvol;
  652.       ppmcscale to pnmdepth;
  653.       ppmrotate to pnmrotate;
  654.       ppmscale to pnmscale;
  655.       ppmshear to pnmshear;
  656.       ppmsmooth to pnmsmooth;
  657.       tifftopgm to tifftopnm - new version based on Sam Leffler's libtiff.
  658.     Bugfixes to pbmtoicon, ppmtops.
  659.     The Makefiles now have a "merge" option.
  660.     All flags are now case-insensitive.
  661.     Added $(MAKE) stuff to Makefile.
  662.     Changed pnmsmooth from a csh script to a sh script.
  663.     Made macro use in pbmtox10bm and pbmtoxbm more portable.
  664.     Moved compataliases to compat.csh, and added compat.ksh.
  665.     Made ppmtoilbm less Amiga-specific.
  666.     Added -headerskip and -rowskip flags to rawtopgm.
  667.     Enhanced rasttopnm to interpret 8-bit rasters with no colormap as grayscale.
  668.     Changed sscanf %g to %f - some systems can't handle %g on input.
  669.     Added -expand flag to pbmmask.
  670.     Speedup to pnmflip - don't buffer if possible.
  671.     Added color-name-to-value routine to ppm - uses X11's rgb.txt if present.
  672.     Updated Imakefile support to reflect X.V11R4.
  673.     Removed picttopbm.
  674.     Improved pnmcut argument syntax so that negative coords work like pnmpaste.
  675.     Added "magic" file, for use with the "file" program.
  676.     40% speedup for pgmnorm from Robert Stockton (rgs@cs.cmu.edu).
  677.     Fixed long-standing bug involving colormaps on SPARCstations when
  678.       compiled with gcc -- had to do with passing structs by value.
  679.     Removed the -x flag from pnmtorast -- it's not really needed.
  680.     Fixed subtle bug in the pnm reading code that caused pnmcat to blow
  681.       it on images that differed greatly in width or height.
  682.     New version of giftoppm that handles the GIF89a standard, and doesn't
  683.       use fseek.
  684.     Fixed fitstopgm to handle three-axis images, such as the Hubble pix.
  685.     Xwdtopnm and pnmtoxwd finally handle byte-order properly.
  686.     Added -xysize flag to pnmscale.
  687.     Added conditional ANSI function prototypes to library routines.
  688.     Added -noantialias flag to pnmrotate and pnmshear.
  689.     Removed the TIPS file.  No one ever sent in any new tips, so I just
  690.       moved the few I had into the relevant man pages.  That's probably
  691.       where they belonged in the first place.
  692.     Added justification flags to pnmcat.
  693.     Added -map flag to ppmquant - user-specifiable colormap.  Also, the
  694.       Floyd-Steinberg error diffusion finally works right.
  695.     Added -map flag to pgmtoppm.
  696.     Added DirectColor support to xwdtopnm and pnmtoxwd.
  697.     Speedup to pgmtolj from Arthur David Olson: avoid sending whitespace.
  698.     Fix to pbmtogo from Bo Thide': 2D compression now works.
  699.  
  700. Patch 1 to the X.V11R4 / comp.sources.misc distribution of 22nov89:
  701.  
  702.     Fixed bug in pgmtops -rle.
  703.  
  704. Changes since the alt.sources distribution of 13sep89:
  705.  
  706.     Small corrections to ppmtorast, pgmtops.
  707.     Moved pbm/tifftopbm to pgm/tifftopgm - it now handles grayscale TIFF files.
  708.     Fixed tifftopgm to handle non-native byte order.
  709.     Changes to tifftopgm to handle bogus AppleScan TIFF files, to have
  710.       better command syntax, and to use stdio.
  711.     Optimizations to xbmtopbm, pbmtoxbm, and pbmtox10bm, courtesy of
  712.       Juha Sarlin, to make them go about three times as fast.
  713.     Optimization to pgmtops and ppmtops to make them go three times as fast.
  714.     Optimization to pnmcrop.
  715.     Added PBMPLUS_BROKENPUTC defines in pbmplus.h to handle systems (such as
  716.       ULTRIX) which have broken putc() macros.
  717.     Rewrote ppmscale, pnmcat, and pgmhist to operate line-by-line, instead
  718.       of reading in the whole image.
  719.     Rewrote pnmflip to keep only one copy of the image in memory.
  720.     Added pgmtofits, courtesy of Wilson H. Bent, plus bugfixes to fitstopgm
  721.       and a patch to giftoppm to handle black&white GIF files.
  722.     Added picttopbm and rawtopgm.
  723.     Fixes to xwdtoppm and ppmtoxwd so they compile with SunOS cc as well as gcc.
  724.     Another small change to ppmtoxwd having to do with colormap size.
  725.     Changed macptopbm's -headersize flag to be -extraskip.
  726.     Changed tgatoppm to read color values as BGRA instead of ARGB; the Targa
  727.       documentation is apparently wrong about the order.
  728.     Some changes to the Makefiles, partially to work around bugs in gnumake.
  729.     Got g3topbm working, and added pbmtog3, courtesy of Paul Haeberli.
  730.     Added some pixrect work-alike code so that rasttopbm, pbmtorast, rasttoppm,
  731.       and ppmtorast can be used on non-Sun systems.  This also provides a
  732.       final solution to the persistent byte- and bit-order problems on 386's.
  733.     Moved the SYSV-checking #ifdefs to *after* the include of pbm.h, which
  734.       defines SYSV.
  735.     Made all the #else's and #endif's ANSI-compliant.
  736.     Added manual pages for libpbm, libpgm, libppm, and libpnm, courtesy
  737.       of Tony Hansen.
  738.     Changed man page installation so that pages from different sections
  739.       can go in different directories.
  740.     Fixed Imakefiles.
  741.  
  742. Changes since the expo.lcs.mit.edu FTP distribution of 06sep89:
  743.  
  744.     Added #ifdefs to pnm/libpnm3.c to allow the PBM-PNM-only configuration.
  745.     Small corrections to TIPS, pnm/Makefile, pnm/Imakefile, ppm/ppmrotate.1,
  746.       ppm/ppmshear.1, ppm/ppmtoilbm.c, pbm/xwdtopbm.c, ppm/xwdtoppm.c,
  747.       ppm/ppmtoxwd.c, ppm/ppmtoxwd.1, pbm/x11wd.h.
  748.  
  749. Changes since the comp.sources.misc distribution of 31oct88:
  750.  
  751.     Added pbmreduce, pbmlife, pbmmask, and pbmupc.
  752.     Added gemtopbm, tifftopbm, pcxtopbm, pbmtogo, mgrtopbm, pbmtomgr,
  753.       cmuwmtopbm, pbmtocmuwm, g3topbm, and pbmtobg.
  754.     Minor bugfix to pbmtolj.
  755.     Slight restructuring of most of the programs to use vastly less memory.
  756.     Various other minor optimizations.
  757.     Fixed pbmtorast and rasttopbm to handle byte-swapped big-endian 386 boxes.
  758.     Slight changes to argument syntax of pbmcrop, pbmmake, pbmreduce.
  759.     Moved to the new PGM package: pbmtops (which now produces Conforming PS).
  760.     Moved to the new PPM package: giftopbm.
  761.     Moved to the new PNM package: pbmcrop pbmcut pbmenlarge pbminvert.
  762.     Consolidated into a single pnmflip tool: pbmfliplr pbmfliptb pbmtrnspos.
  763.     Consolidated into a single pnmcat tool: pbmcatlr pbmcattb.
  764.     Added compataliases script for upward compatability with changed tools.
  765.     Removed xxxtopbm.
  766.     Added a -headersize flag to macptopbm, to help get around annoying
  767.       problems in MacPaint file format.
  768.     Added the RAWBITS compilation-time option, to use a more compact and
  769.       much faster (but less portable) external format.
  770.     Removed the CBM format - use compress(1) and / or RAWBITS instead.
  771.     Pbmpaste (and the new pnmpaste) now accepts negative x and y coords,
  772.       which are interpreted relative to the right and bottom sides.
  773.     Changed all programs to accept a "-" file argument as meaning standard
  774.       input.
  775.     Removed pbmtox10wd, since it was never very useful (X10 doesn't have xwud).
  776.     Added Imakefiles, for X11 types to use.
  777.  
  778. Changes since the X.V11R3 distribution of 31aug88:
  779.  
  780.     The cbm format has been revised to support run-length encoding.
  781.     Pbmtops now does run-length encoding.
  782.  
  783. Major changes since the X.V11R2 distribution of 28mar88:
  784.  
  785.     The pbm format now has a "magic number".
  786.     New conversion filters: brushtopbm, giftopbm, pbmtolj, pbmtomacp,
  787.       pbmtoxwd, and pbmtox10wd.
  788.     Icontopbm converter has a better parser -- it knows to skip over
  789.       any extraneous comments at the beginning of the icon file.
  790.     Pbmtops generates a different PostScript wrapper program -- it should
  791.       handle huge bitmaps better.
  792.     Xwdtopbm now handles byte-swapping correctly.
  793.     Pbmmake takes a flag to specify the color of the new bitmap.
  794.     Pbmpaste now implements 'or', 'and', and 'xor' operations as well
  795.       as the default 'replace'.
  796.